﻿using System;
using System.Collections.Generic;
using Neturion.Dados;
using Neturion.IRepositorios;
using Neturion.Repositorios;

namespace Neturion.Negocios
{
    public class NegocioTipoContaContabil
    {
        private IRepositorioTipoContaContabil _repositorioTipoContaContabil;

        public NegocioTipoContaContabil()
        {
            _repositorioTipoContaContabil = new RepositorioTipoContaContabil();
        }

        public TipoContaContabil Inserir(TipoContaContabil tipoContaContabil, Usuario usuarioPermissao)
        {
            return _repositorioTipoContaContabil.Inserir(tipoContaContabil);
        }

        public TipoContaContabil Atualizar(TipoContaContabil tipoContaContabil, Usuario usuarioPermissao)
        {
            return _repositorioTipoContaContabil.Atualizar(tipoContaContabil);
        }

        public void Excluir(TipoContaContabil tipoContaContabil, Usuario usuarioPermissao)
        {
            TipoContaContabil tipoContaContabilTmp = ObterPorId(tipoContaContabil.TipoContaContabilId, usuarioPermissao);
            _repositorioTipoContaContabil.Excluir(tipoContaContabilTmp);
        }

        public IList<TipoContaContabil> ObterTodos()
        {
            return _repositorioTipoContaContabil.ObterTodos();
        }

        public IList<TipoContaContabil> ObterTodos(int inicio, int quantidade, int quantidadeMinima, Usuario usuarioPermissao, string codigo, string descricao,
                                                DateTime? inicioVigenciaDe, DateTime? inicioVigenciaAte, DateTime? fimVigenciaDe, DateTime? fimVigenciaAte)
        {
            return _repositorioTipoContaContabil.ObterTodos(inicio, quantidade, quantidadeMinima, codigo, descricao, inicioVigenciaDe, inicioVigenciaAte, fimVigenciaDe, fimVigenciaAte);
        }

        public TipoContaContabil ObterPorId(int id, Usuario usuarioPermissao)
        {
            return _repositorioTipoContaContabil.ObterPorId(id);
        }

        public TipoContaContabil ObterPorCodigo(string codigo, Usuario usuarioPermissao)
        {
            return _repositorioTipoContaContabil.ObterPorCodigo(codigo);
        }
    }
}